	/**
	 * Constants used in TAC: code op
	 * We put them here since there are shared by TAC and code generator
	 * <p>
	 * The meaning of each code op is explained below:
	 *<ul>
	 * <li> TAC_ADD : a = b + c </li>
	 * <li> TAC_SUB : a = b - c </li>
	 * <li> TAC_MUL : a = b * c </li>
	 * <li> TAC_DIV : a = b / c </li>
	 * <li> TAC_NEG= :  a = -b  </li>
	 * <li> TAC_COPY : a = b    </li>
	 * <li> TAC_GOTO : goto a   </li>
	 * <li> TAC_IFZ : ifz a goto b </li>
	 * <li> TAC_IFNZ : ifnz a goto b </li>
	 * <li> TAC_ARG :  arg a </li>
	 * <li> TAC_CALL :  a = call b ou call b </li>
	 * <li> TAC_RETURN : return a </li>
	 * <li> TAC_TABVAR : a = b[c] </li>
	 * <li> TAC_VARTAB : a[b] = c </li>
	 * <li> TAC_LABEL : label a </li>	
	 * <li> TAC_VAR :  var a </li>
	 * <li> TAC_BEGINFUNC </li>
	 * <li> TAC_ENDFUNC </li>
	 * </ul>
	 * <p>
	 */
public interface CGConstants {
	
	 public static final 
	  int TAC_NILL=0,
	  TAC_ADD=1,          // a = b op c
	  TAC_SUB=2,
	  TAC_MUL=3,
	  TAC_DIV=4,
	  TAC_NEG=5,          // a = -b
	  TAC_COPY=6,         // a = b
	  TAC_GOTO=7,         // goto a
	  TAC_IFZ=8,          // ifz a goto b
	  TAC_IFNZ=9,         // ifnz a goto b
	  TAC_ARG=10,         // arg a
	  TAC_CALL=11,        // a = call b ou call b
	  TAC_RETURN=12,      // return a
	  TAC_TABVAR=13,      // a = b[c]
	  TAC_VARTAB=14,      // a[b] = c
	  TAC_LABEL=15,       // label a
	  TAC_VAR=16,         // var a
	  TAC_BEGINFUNC=17,
	  TAC_ENDFUNC=18;

}

